# Python字符串定位——rindex探秘之旅!

# [钛妹]: 基础不牢谈何AI？今天钛妹又学习了Python的rindex方法，欢迎大神们指正错误！
# [钛哥]: 好嘞，既然rfind已经玩过，咱们就来看看它的“孪生兄弟”rindex有啥不同吧！
# [钛妹]: OK，冲呀！

txt1 = "Mi casa, su casa."

# [钛妹]: 这句话里“casa”出现了两次，要找最后一次出现的位置，该怎么做呢？
# [钛哥]: 看我用rindex()方法大显神通，只要找不到的就会抛出异常，不像rfind那样只返回-1哦！
pos1 = txt1.rindex("casa")
print("示例1 - 最后一次出现'casa'的索引位置:", pos1)

# [钛妹]: 那查找普通字母是不是类似的？
# [钛哥]: 没错，我们来找“e”在下述字符串中最后一次出现的位置！
txt2 = "Hello, welcome to my world."
pos2 = txt2.rindex("e")
print("示例2 - 最后一次出现'e'的索引位置:", pos2)

# [钛妹]: 如果只想限定索引范围5到10之间搜索呢？
# [钛哥]: 那就往rindex里多传俩参数start和end，演示如下：
pos3 = txt2.rindex("e", 5, 10)
print("示例3 - 在索引[5,10]范围内搜索'e'的索引位置:", pos3)

# [钛妹]: 如果找的内容根本不存在，会发生啥？
# [钛哥]: 这时就会抛出异常，可不像rfind()那样给你返回-1。
#         我们就注释演示，避免直接报错！
print(txt2.rindex("q"))  # 会抛出ValueError错误

# [钛哥]: 通过今天的学习，可以总结出：
#         1. rindex()与rfind()基本相似，但找不到会直接抛异常。
#         2. 支持可选的start、end范围查询。
#         3. 返回最后一次出现的位置，跟index()的差别仅在于“最后一次”而非“第一次”。
# [钛妹]: 好的，rindex我也算掌握啦！
print("好啦，这期内容到此结束，你是不是感觉又进步了一点点？点赞关注不迷路！")
